package cn.tedu.list;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Date：2021年11月
 * Author：程Sir
 * Name： JavaSE-API
 * Content:
 *
 *      List是Collection下的一子接口
 *      特点：
 *          1）有序的集合
 *          2）有索引
 *          3）是可以存放重复元素
 *
 *      public void add(int index, E element) : 将指定的元素，添加到该集合中的指定位置上。
 *      public E get(int index) :返回集合中指定位置的元素。
 *      public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
 *      public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
 *
 *
 */
public class ListDemo {
    public static void main(String[] args) {

        List<Integer> list = new ArrayList<>();
        // add方法添加元素
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        System.out.println(list); //[1, 2, 3, 4, 5]

        list.add(1,9);
        System.out.println(list);//[1, 9, 2, 3, 4, 5]


        list.remove(2);
        System.out.println(list);//[1, 9, 3, 4, 5]

        Integer a = list.set(1,2);
        System.out.println("==============");
        System.out.println(list);//[1, 2, 3, 4, 5]
        System.out.println(a);//9
        System.out.println("======第一种方式=======");
        // 获取结合中的元素
        for (int i = 0; i < list.size(); i++) {
            Integer b = list.get(i);
            System.out.println(b);
        }

        System.out.println("=======第二种方式========");
        // 获取迭代器
        Iterator<Integer> iterator = list.iterator(); //迭代器遵循：问、取、删（不是必要的）
        while (iterator.hasNext()){
            Integer b = iterator.next();
            System.out.println(b);
        }

        System.out.println("=======第三种方式=========");
        for (Integer i:list ){
            System.out.println(i);
        }





    }
}
